package com.xc.file.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xc.file.entity.UserInfoEntity;

/**
 * <p>空间流量服务类</p>
 *
 * @author xc
 * @version v1.0.0
 */
public interface UserInfoService extends IService<UserInfoEntity> {

    /**
     * <p>计算可用流量</p>
     *
     * @param size   使用大小
     * @param userId 用户id
     */
    public void computeFreeFlow(String userId, long size, boolean isAdd);


    /**
     * <p>根据用户id获取用户信息</p>
     *
     * @param userId 用户主键
     * @return 用户信息
     */
    public UserInfoEntity getUserInfoByUserId(String userId);


    /**
     * 验证用户空间是否足够
     *
     * @param userId 用户id
     * @param size   文件大小
     */
    public void verifyUserSpace(String userId, long size);

    /**
     * 创建本地用户信息
     *
     * @param userInfoEntity 用户信息
     */
    public void createUserInfo(UserInfoEntity userInfoEntity);

    /**
     * 计算当前用户使用空间
     *
     * @param userId 用户id
     * @return 使用的空间
     */
    public Long getUseSpace(String userId);

    /**
     * 根据账号获取用户信息
     *
     * @param account 账号
     * @return 用户信息
     */
    public UserInfoEntity getUserInfoByAccount(String account);
}
